# 代码所有：cxw
# 开发时间：2021/6/26 15:45

#python运算符（二）

#布尔运算符  and,not ,or,in,not in;
a,b=1,2
print('-------and 并且   有假则假，全真才为真------')
print(a==1 and b==2) #True True  True and True== True
print(a==1 and b<2)  #False True and False ==False
#有假则假,全真才为真
print(a!=1 and b==2) #False


print('-----or 或者  有真则真，全假为假-----')
print(a==1 or b==2)  #True
print(a==1 or b<2)   #True
print(a!=1 or b==2)  #True
#有真则真,全假才为假
print(a!=1 or b!=2)  #False


print('------not 否，取反----')
f1=True
f2=False
print(not f1) #取反 原来是True取反后变为False
#真假相反，对bool类型进行取反
print(not f2)

print('------in和 not in----- ')
s='hello world'
print('o' in s)  #o是否在s里面,o是在s里面的
print('b' in s)  #s里面没有b
#in是表示是否字母在字符串里面，判断真假
print('b' not in s) #s里面没有b，所以为True



#位运算符  将数据转化成二进制进行计算
print('-----位运算符----')
#按位与&   对应数位都是1，结果数位才是1，否则为0
print(4&8) #0 按位与&，同为一时结果为一，
#4 0000/0100 8 0000/ 1000  对应位置都不同，所以为0
#按位或|
print(4|8)  #12 按位或|，同为0时才为0，否侧为1


#位运算
#<<左移位运算 ，高位溢出舍弃，低位补0
#>>右移运算,低位溢出舍弃，高位补0
print(4<<1)  #向左移动1位(移动一个位置，相当于乘以2)
print(4<<2)

print(4>>1) #向右移动1位，相当于整除除以2
print(4>>2) #向右移动2位，相当于整除除以4